package com.qyhl.webtv.commonlib.service;

import com.alibaba.android.arouter.facade.template.IProvider;
import com.qyhl.webtv.commonlib.entity.intergral.CoinBean;
import com.qyhl.webtv.commonlib.entity.intergral.ExchangerRateBean;
import com.qyhl.webtv.commonlib.entity.intergral.IntegralUserInfoBean;
import com.qyhl.webtv.commonlib.entity.user.LuckDrawAdvBean;

import java.util.List;

/**
 * 积分模块对外暴露的服务接口
 * @author helin
 * @date 2019年3月28日17:41:28
 */
public interface IntergralService extends IProvider {

    /**
     * 赚取金币
     * @param type  赚取金币类型
     */
    void gainCoin(String type,String name,GainCoinCallBack coinCallBack);

    /**
     * 获取签到信息
     */
    void getSignInfo(SignInCallBack callBack);

    /**
     * 获取抽奖信息
     * @param callBack
     */
    void getLuckDraw(LuckDraw callBack);

    /**
     * 获取汇率信息
     * @param callBack
     */
    void getExchangerRate(ExchangerRate callBack);

    /**
     * 汇率信息回调
     */
    interface ExchangerRate{
        /**
         * 抽奖信息
         * @param bean
         */
        void success(ExchangerRateBean bean);

        /**
         * 失败
         * @param msg 错误信息
         */
        void error(String msg);
    }

    /**
     * 抽奖信息
     */
    interface LuckDraw{
        /**
         * 抽奖信息
         * @param listBean
         */
        void success(List<LuckDrawAdvBean> listBean);

        /**
         * 失败
         * @param msg 错误信息
         */
        void error(String msg);
    }


    /**
     * 签到信息
     */
    interface SignInCallBack{
        /**
         * 签到信息
         * @param bean
         */
        void success(IntegralUserInfoBean bean);

        /**
         * 失败
         * @param msg 错误信息
         */
        void error(String msg);
    }

    /**
     * 获取金币回调
     */
    interface  GainCoinCallBack{
        /**
         * 获取金币成功
         * @param coinBean
         */
        void success(CoinBean coinBean);

        /**
         * 获取金币失败
         * @param msg 错误信息
         */
        void error(String msg);

    }


}
